//联合类型 或者
type A = number|string|boolean;
//交叉类型(intersection Types)  合并
//交叉类型表示需要满足多个条件
//交叉类型使用的是&
type B = number & string
//表达的含义是number和string要同时满足
//但是不可能有一个值同时是number和string的, 所以B这个类型其实是一个never类型
let b:B


type Obj = {
    name: string
}
type Obj2 = {
    age: number
}
type Obj12 = Obj & Obj2
let obj:Obj12 = {
    name: "你好",
    age: 18
}